unit-testing - Golang 模拟 Elastic
全部标签 我正在使用MiniTest2.12.1(Ruby>=1.9附带的最新版本的股票测试框架),我不知道如何用它模拟一个类方法,同样的方法Mocha之类的东西是可能的,例如:product=Product.newProduct.expects(:find).with(1).returns(product)assert_equalproduct,Product.find(1)我已经涉足互联网好几天了,但我仍然没有找到一个合理的答案。请帮忙? 最佳答案 如果您坚持使用2.12.1,这可能对您没有帮助,但看起来他们在HEAD中向minitest
我通过创建一个扩展到库类的子类来扩展现有的库。在子类中,我能够测试initialize方法中的大部分功能,但无法模拟super调用。子类如下所示。classChild如何编写rspec测试(使用mocha)以便我可以模拟super调用?请注意,我正在测试Child类中的initialize方法的功能。当提供额外参数时,我是否必须创建不调用super的单独代码路径? 最佳答案 你不能模拟super,你也不应该。当您模拟某些内容时,您正在验证是否收到了特定消息,而super不是一条消息——它是一个关键字。相反,弄清楚如果缺少super调
我正在尝试使用webmock模拟WebAPI的意外行为,例如未找到服务器和超时。执行此操作的最佳方法是什么?我能想到的就是做这样的事情:stubbed_request=stub_request(:get,"#{host}/api/something.json").with(:headers=>{'Accept'=>'*/*','Content-Type'=>'application/json','User-Agent'=>'Ruby'}).to_return(:status=>[500,"InternalServerError"])这应该适用于404等问题,但我如何测试超时、未找到服务
我正在以古老的方式学习Rails。以阅读AgileWebDevelopmentwithRails(第3版)作为起点。我目前在教测试的章节中。我也知道其他BDD测试框架,例如RSPec。所以我想知道RSpec、Cucumber、Shoulda等框架是否可以取代了解/使用Test::Unit的需要?它们本身是否相关并用于不同的目的?更新:由于我是测试新手,我也很想获得反馈,了解哪些资源对我熟悉不同的框架很有用。谢谢! 最佳答案 世界变了!检查并赞成@prusswan我认为Test::Unit仍然具有相关性,尽管围绕BDD和其他测试工具进
如何使用RSpec指定#initialize行为?例如这里:generator.rbclassGeneratorattr_accessor:seeddefinitialize(seed=nil)@seed=seed||pick_seedenddefpick_seedTime.now.to_iendendgenerator_spec.rbrequire'generator'describeGeneratorit"calls'pick_seed'methodunlessseedspecified"doendend我想设置从#initialize方法调用的pick_seed方法的期望值。
知道模拟%[]的方法吗?我正在为进行一些系统调用的代码编写测试,例如:deflog(file)%x[gitlog#{file}]end并希望在测试此方法时避免实际执行系统调用。理想情况下,我想模拟%x[..]并断言已将正确的shell命令传递给它。 最佳答案 %x{…}是Ruby内置的语法,它实际上会调用内核方法Backtick(`).所以你可以重新定义那个方法。由于反引号方法返回在子shell中运行cmd的标准输出,您重新定义的方法应该返回类似的东西,例如,一个字符串。moduleKerneldef`(cmd)"call#{cmd
我通常可以对方法“delete_user_test”使用以下命令行语法来测试常规Test::Unit方法:rubyfunctional/user_controller_test.rb-ndelete_user_test现在,当我将shoulda插件与Test::Unit一起使用时,我尝试使用如下相同的技术:...context"DeletingaUser"doshould"removeuserfromusertable"do...endend然后我尝试按如下方式运行单个测试:rubyfunctional/user_controller_test.rb-n"test:DeletingaU
所以根据thislink一个是快捷方式包装器(所以我猜它们是一样的)。当我运行bundleexecrakedb:test:prepare时,我得到了这个错误:Don'tknowhowtobuildtask'test:prepare'/Users/aj/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/bin/ruby_executable_hooks:15:in`eval'/Users/aj/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/bin/ruby_executable_hoo
RSpec有:describe"theuser"dobefore(:each)do@user=Factory:userendit"shouldhaveaccess"do@user.should...endend您如何将这样的测试与Test::Unit分组?例如,在我的Controller测试中,我想在用户登录和无人登录时测试Controller。 最佳答案 您可以通过类实现类似的功能。可能有人会说这很糟糕,但它确实允许您在一个文件中分离测试:classMySuperTest 关于ruby
如何在ruby中模拟类Java注解?(好吧,我有答案了,概括一下http://bens.me.uk/2009/java-style-annotations-in-ruby) 最佳答案 本文改编自apieceofcodeIwroteinananswertoanotherquestion几个星期前,虽然它当然不是原创的。这是一个著名的Ruby习语,毕竟它已经使用了很多年,至少从rakes的desc方法开始.moduleAnnotationsdefannotations(meth=nil)return@__annotations__[me